package com.zwps.biz.domain.service;

import java.util.Collection;
import java.util.List;

import org.springframework.lang.Nullable;

import com.zwps.biz.api.model.dto.permission.page.AddPagePermissionDTO;
import com.zwps.biz.api.model.dto.permission.page.SelectPagePermissionDTO;
import com.zwps.biz.api.model.dto.permission.page.UpdatePagePermissionDTO;
import com.zwps.biz.api.model.vo.permission.page.PagePermissionTreeVO;
import com.zwps.biz.dal.db.object.PagePermissionDO;

public interface PagePermissionService {

    void addPagePermission(AddPagePermissionDTO dto);

    void deletePagePermissions(String ids);

    void updatePagePermission(String id, UpdatePagePermissionDTO dto);

    List<PagePermissionDO> selectPagePermissions(SelectPagePermissionDTO dto);
    
    List<PagePermissionTreeVO> findTree(@Nullable String parentId);

    /**
     * 通过树编码返回树结构
     * @Title: findTreeByTreeCodes
     * @Description: 
     * @param treeCodes
     * @return List<PagePermissionTreeVO>
     * @author lyh
     * @date 2023年8月31日 下午5:59:55
     */
    List<PagePermissionTreeVO> findTreeByTreeCodes(Collection<String> treeCodes);

}
